home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / Libraries / DCLAP 6d / dclap6d / Drtf / DRichProcess.h < prev    next >
Text File  |  1996-07-05  |  3KB  |  121 lines

  1. // DRichProcess.h
  2. // d.g.gilbert
  3.  
  4.  
  5.  
  6. #ifndef _DRichPROCESS_
  7. #define _DRichPROCESS_
  8.  
  9. #include "DObject.h"
  10. #include "Dvibrant.h"
  11. #include "DRichViewNu.h"
  12.  
  13. class DFile;
  14.  
  15.  
  16.  
  17. struct StyleRec {
  18.     DRichStyle    style;
  19.     char*    fontname;
  20.     char*    fontfamily;
  21.     short fontsize;
  22.     StyleRec();
  23. };
  24.  
  25. class DRichprocess {
  26. public:
  27.     enum {
  28.         kMaxStyleStack = 50, 
  29.         kMaxTokenBuf = 1024,     
  30.         kDefaultFontsize = 10,
  31.         kBlackColor = 0,
  32.         kDefTabstop= 36 
  33.         };
  34.         
  35.     enum classes {
  36.         tokUnknown = 0,  // match rtfClass values !
  37.         tokGroup = 1,
  38.         tokText = 2,
  39.         tokControl = 3,
  40.         tokDropchar = 4,
  41.         tokMaxClass,
  42.         tokNoParam = 0,
  43.         tokBreakInData = -6,
  44.         tokEOF = EOF    
  45.         };
  46.  
  47.     enum controls {
  48.         tokNull,
  49.         tokNewline
  50.         };
  51.      
  52.     DRichprocess( DFile* itsFile, DRichView* itsDoc, Nlm_MonitorPtr progress);
  53.     virtual ~DRichprocess();
  54.  
  55.     static char* gGenCharMap;
  56.     static char* gSymCharMap;
  57.     static char* ReadOutputMap( char *file);
  58.     
  59.     virtual void  Read();
  60.     virtual void  Close();
  61.     virtual short GetToken();
  62.     virtual void  RouteToken();
  63.     virtual void    handleUnknownClass(); 
  64.     virtual void    handleTextClass();
  65.     virtual void    handleControlClass(); 
  66.     
  67.     virtual const char*  GetTitle() { return fTitle; }
  68.     virtual void    SetBuffer( char* dataBuffer, ulong dataSize, Boolean endOfData);
  69.  
  70. public:
  71.     short             fClass, fMajor, fMinor;
  72.     long              fParam;
  73.     Boolean            fEndOfData;
  74.     DFile                * fDataFile;
  75.     char                 * fDataBuffer;
  76.     long                fDataSize;
  77.     DRichView        * fDoc;
  78.     Nlm_MonitorPtr fProgress;
  79.     long                 fTextMax, fTextSize, fLastTextSize;
  80.     char                * fText;
  81.     char                fLastChar, fPushedChar;
  82.     StyleRec        fStyleRec, fOldStyleRec,  fStyleStack[kMaxStyleStack];
  83.     short                fStyleStackSize;
  84.     DParagraph    fParaFmt, fOldParaFmt, fDefParaFmt;
  85.     short                fParaCount;
  86.     DRichStyle * fStyleArray;
  87.     short                fStyleCount, fStyleMax;
  88.     Nlm_FonT        fFont;  
  89.     Boolean            fNewStyle;
  90.      char            * fTitle;
  91.   char            * fOutMap;
  92.  
  93.     virtual void  PutLitChar(short c);
  94.     virtual void  PutLitStr(char *s);
  95.     virtual void  PutLitCharWithStyle(short c);
  96.     virtual void  PutStdChar(short stdCode);
  97.     virtual void  PutStdCharWithStyle(short stdCode);
  98.  
  99.     virtual void    StoreStyle(DRichStyle& theStyle, Boolean force);
  100.     virtual void  StoreStyleObject(DStyleObject* sob, short width, short height);
  101.     Boolean IsNewStyle();
  102.     void NewStyle() { fNewStyle= true; }
  103.     void NotNewStyle() { fNewStyle= false; }
  104.     virtual Boolean TestNewStyle();
  105.     virtual Nlm_FonT GetNlmFont();
  106.     virtual void     PushStyle();
  107.     virtual void    PopStyle();
  108.     virtual void    DefaultStyle();
  109.     virtual void    DefaultParag();
  110.     virtual void    NewParagraph();
  111.     virtual void  SetDefaultParag(DParagraph* theDefault);
  112.  
  113.     virtual void  GetToken1();             // private
  114.     virtual short GetOneChar();         // private
  115.     virtual void     Pushback(char c); // private
  116. };
  117.  
  118.  
  119.  
  120. #endif
  121.